#include<stdio.h>
#include<unistd.h>

int main(){
    

    //while(1){
        ////getpid,获取当前程序进程
        ////getppid,获取当前进程父进程,每次进程的开始，都会有-bash(解释器)的启动
        ////printf("我的进程%d , 我的父进程%d\n",getpid(),getppid());
    //    sleep(1);
    //}

    
    pid_t ret = fork();
    if(ret < 0){
        perror("fork");
        return 1;
    }
    while(1){
    //fork 会返回两个值为同一地址，不同值，说明不是物理地址，与虚拟地址有关
    if(ret == 0){ //child，fork会返回给子进程0
        printf("I am child : %d!, ret: %d\n", getpid(), ret);
    }
    else{ //father，fork会返回给父进程 >0，因为父进程:子进程 == 1:n
        printf("I am father : %d!, ret: %d\n", getpid(), ret);
    }
    //当进入fork，会启动子进程，此时程序就有两个进程运行
    sleep(1);
    }
    return 0;
}
